---
title: Customization
metaTitle: Customization
description: Customize your FaceLivenessDetector
supportedFrameworks: react|android|swift
---

import { InlineFilter } from '@/components/InlineFilter';
import { Example } from '@/components/Example';
import { FRAMEWORKS } from '@/data/frameworks';
import { getCustomStaticPath } from '@/utils/getCustomStaticPath';
import StartAndroid from './customization.start-view.android.mdx';
import StartReact from './customization.start-view.react.mdx';
import StartSwift from './customization.start-view.swift.mdx';
import OptionsAndroid from './customization.options.android.mdx';
import OptionsSwift from './customization.options.swift.mdx';
import I18Android from './customization.i18n.android.mdx';
import I18React from './customization.i18n.react.mdx';
import I18Swift from './customization.i18n.swift.mdx';
import ThemeAndroid from './customization.theming.android.mdx';
import ThemeReact from './customization.theming.react.mdx';
import ComponentsReact from './customization.components.react.mdx';
import SystemClockOffsetReact from './customization.system-clock-offset.react.mdx';
import CdnReact from './customization.cdn.react.mdx';

export async function getStaticPaths() {
  return getCustomStaticPath(frontmatter.supportedFrameworks);
}

{/*  `getStaticProps` is required to prevent "Error: getStaticPaths was added without a getStaticProps. Without getStaticProps, getStaticPaths does nothing" */}

export async function getStaticProps() {
  return { props: {} }
}

## Start View

<InlineFilter filters={['android']}>
  <StartAndroid />
</InlineFilter>
<InlineFilter filters={['react']}>
  <StartReact />
</InlineFilter>
<InlineFilter filters={['swift']}>
  <StartSwift />
</InlineFilter>

<InlineFilter filters={['android']}>
  <OptionsAndroid />
</InlineFilter>

<InlineFilter filters={['swift']}>
  <OptionsSwift />
</InlineFilter>

## Internationalization (I18n)

<InlineFilter filters={['android']}>
  <I18Android />

  <ThemeAndroid />
</InlineFilter>
<InlineFilter filters={['react']}>
  <I18React />

  <ThemeReact />

  <ComponentsReact />

  <SystemClockOffsetReact />

  <CdnReact />
</InlineFilter>
<InlineFilter filters={['swift']}>
  <I18Swift />
</InlineFilter>

## Best Practices

1. The get ready screen has been optimized for increasing the end user's success rate and we strongly discourage making any changes to that screen.
1. We do not recommend modifying the countdown time, face fit timeout, and oval size, as they affect the security and accuracy of the Face Liveness check.
